#ifndef MAGIC_H
#define MAGIC_H

#include "entity.h"
#include "enums.h"



class magic
{
    public:
        /** Default constructor */
        magic();
        magic(Entity *pThisEntity);
        SpellType GetPlayerSpell();
        SpellType GetEnemySpell(Entity *pEnemy);
        int HealQuick(Entity *caster, Entity *target);
        void HealSlow(Entity *caster, Entity *target);
        int Fireball(Entity *caster, Entity *target);
        bool SpellCast(Entity *pCaster, Entity *pSubject);
        bool ExecuteSpellCast(SpellType, Entity *pCaster, Entity *pSubject);
        string GetSpellName();
        string GetSpellEffectString();
        bool canCast(Entity *pCaster, SpellType checkedSpell);

    protected:
    private:
        Entity *entity;
        SpellType thisExecutedSpell;
        string spellName;
        string intToString(int number);
        string spellEffectString;
};



#endif // MAGIC_H
